import Mock from 'mockjs';
function paramToObj(url) {
    const search = url.split('?')[1];
    if (!search) {
        return {};
    }
    let params = {};
    search.split('&').forEach(item => {
        item = item.split('=');
        let _key = item[0];
        let _value = item[1];
        params[_key] = _value;
    })
    return params;
}

//逻辑模型相关
export const getModelList = function (option) {
    console.log('option', option.url)
    let { pageNum } = paramToObj(option.url);
    const modelList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            'totalCount': 100,
            'list|10': [{
                "logicalModelId|+1": 1,//列表项唯一标识
                "modelCode": "MCSLJMX02", //模型编码
                "modelName": "人员信息模型", //模型名称
                "description": "该模型主要包括对人员信息的管理属性",//模型说明
                "version": "v1.0", //模型版本
                "modelStatus|1": [0, 1, 2], //模型状态（编辑中，已发布，已停用，历史）
                "modelStatusValue|1": ['编辑中', '已发布', '已停用'],  //模型状态中文名
                "themeName": "人员管理数据" //所属主题
            }],
            "pageNum": pageNum,
            "pageSize": 10
        }
    })
    return modelList;
}
export const getSubjectList = function (option) {
    const subjectList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': [{
            "id": 1,//列表项唯一标识
            'label': 'XX体系业务数据',  //主题名称
            'children': [{   //子集
                "id": 4,
                'label': '业务标准管理',
                'children': [{
                    "id": 9,
                    'label': '申报标准',
                    'children': [{
                        "id": 11,
                        'label': 'XXXXXXXX申报'
                    }]
                }, {
                    "id": 10,
                    'label': '审批标准'
                }]
            }]
        }]
    })
    return subjectList;
}

export const getModelPropertyList = function (option) {
    console.log('option', option.url)
    const propertyList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            "logicalModelList": [
                {
                    "logicalModelId|+1": 3,       //逻辑模型id
                    "modelCode": "MCSLJMX02", //模型编码
                    "modelName": "mybatis",   //逻辑模型名称
                    "description": "MyBatis本是apache的一个开源项目iBatis，2010年这个项目由apache software foundation迁移到了google code，并且改名为MyBatis",     //描述
                    "version": 1,                                         //版本
                    "themeId": 11,                                    //主题id
                    "themeName": "人员管理数据",                          //主题名称
                    "modelStatus|1": [0, 1, 2], //模型状态（编辑中，已发布，已停用，历史）
                    "modelStatusValue|1": ['编辑中', '已发布', '已停用'],  //模型状态中文名
                }],
            "fieldList|20": [
                {
                    "logicalModelFieldId|+1": 1,                    //逻辑模型字段id
                    "columnName": "用户名",                   //字段名（中文）
                    "columnField": "user_name",             //字段名
                    "columnType": "varchar",                  //数据类型
                    "columnLength": 100,                       //字段长度
                    "columnPrecision": 0,                       //字段精度
                    "columnRemark": "用户名",             //注释
                    "orderNum|+1": 1,                               //排序
                    "onlyIdentification|1": [0, 1],                   //是否唯一
                    "onlyIdentificationValue": ['是', '否']      //是否唯一属性名
                }
            ]
        }
    })
    return propertyList;
}
export const dataTypeList = function (option) {
    console.log('option', option.url)
    // console.log(Mock.mock(option.url))
    let { pageNum } = paramToObj(option.url);
    const modelList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            'list': [
                {
                    "value": "varchar",
                    "key": "varchar"
                },
                {
                    "value": "bigint",
                    "key": "bigint"
                },
                {
                    "value": "timestamp",
                    "key": "timestamp"
                },
                {
                    "value": "datetime",
                    "key": "datetime"
                },
                {
                    "value": "integer",
                    "key": "integer"
                }
            ]
        }
    })
    return modelList;
}
export const getModelRelationList = function (option) {
    console.log('option', option.url)
    let { pageNum } = paramToObj(option.url);
    const modelList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            'totalCount': 100,
            'list|10': [{
                "modelRelationId|+1": 1,//列表项唯一标识
                "sourceModelCode": "MCSLJMX02", //源模型编码
                "sourceModelName": "人员信息模型", //源模型名称
                "sourceFiledName": "学号",//源属性中文名
                "sourceFiledColumn": "Stu_ID", //源属性英文名
                "relationName|1": ['引用','被引用'], //关系名称
                "targetModelCode":"XSCJ03",  //目标模型编码
                "targetModelName": "学生成绩" ,// 目标模型名称
                "targetFiledName": "学号", // 目标属性中文名
                "targetFiledColumn": "S_ID" // 目标属性英文名
            }],
            "pageNum": pageNum,
            "pageSize": 10
        }
    })
    return modelList;
}
export const createLogicModel = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
export const saveModelProps = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
export const publishModel = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
export const deleteModel = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
export const deleteModelVersion = {
    'code': 200,
    'message': 'ok',
    'data': 124
}

//物理模型相关
export const getPhysicModelList = function (option) {
    console.log('option', option.url)
    // console.log(Mock.mock(option.url))
    let { pageNum } = paramToObj(option.url);
    const physicModelList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            'total': 100,
            'list|10': [{
                "physicalModelId|+1": 1,//列表项唯一标识
                "modelCode": "MCSLJMX02", //模型编码
                "modelName": "人员信息模型", //模型名称
                "tableName": 'MCSLJMX02', //目标数据表/表名
                "createStyle|1": 'MCSLJMX02', //创建方式
                "baseName": 'XXX行政管理系统', //目标数据库
                "description": "该模型主要包括对人员信息的管理属性",//模型说明
                "version": "v1.0", //模型版本
                "modelStatus|1": [0, 1, 2], //模型状态（编辑中，生效，停用，历史）
                "themeName": "人造代码体系" //所属主题
            }],
            "pageNum": pageNum,
            "pageSize": 10
        }
    })
    return physicModelList;
}
export const getBaseDataList = function (option) {
    const baseDataList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            'list': [
                {
                    "value": "kg_data_transform1",
                    "key": 1
                },
                {
                    "value": "kg_data_transform2",
                    "key": 2
                },
                {
                    "value": "kg_data_transform3",
                    "key": 3
                },
                {
                    "value": "kg_data_transform4",
                    "key": 4
                },
            ]
        }
    })
    return baseDataList;
}
export const getPYModelPropertyList = function (option) {
    const propertyList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            "physicalModelList": [
                {
                    "physicalModelId|+1": 3,       //物理模型id
                    "modelCode": "MCSLJMX02", //模型编码
                    "modelName": "mybatis",   //物理模型名称
                    "description": "MyBatis本是apache的一个开源项目iBatis，2010年这个项目由apache software foundation迁移到了google code，并且改名为MyBatis",     //描述
                    "version": 1,                                         //版本
                    "themeId": 11,                                    //主题id
                    "themeName": "人员管理数据",                          //主题名称
                    "modelStatus|1": [0, 1, 2], //模型状态（编辑中，已发布，已停用，历史）
                    "modelStatusValue|1": ['编辑中', '已启用', '已停用'],  //模型状态中文名
                }],
            "fieldList|20": [
                {
                    "physicalModelFieldId|+1": 1,                    //物理模型字段id
                    "columnName": "用户名",                   //字段名（中文）
                    "columnField": "user_name",             //字段名
                    "columnType": "varchar",                  //数据类型
                    "columnLength": 100,                       //字段长度
                    "columnPrecision": 0,                       //字段精度
                    "columnRemark": "用户名",             //注释
                    "orderNum|+1": 1,                               //排序
                    "onlyIdentification|1": [0, 1],                   //是否唯一
                    "onlyIdentificationValue": ['是', '否']      //是否唯一属性名
                }
            ]
        }
    })
    return propertyList;
}
export const getSystemPropsList = function (option) {
    // console.log('option', option.url)
    const systemPropsList = Mock.mock({
        'code': 200,
        'message': 'ok',
        'data': {
            "systemList|20": [
                {
                    "physicalModelFieldId|+1": 1,                    //物理模型字段id
                    "columnName": "用户名",                   //字段名（中文）
                    "columnField": "user_name",             //字段名
                    "columnType": "varchar",                  //数据类型
                    "columnLength": 100,                       //字段长度
                    "columnPrecision": 0,                       //字段精度
                    "columnRemark": "用户名",             //注释
                    "orderNum|+1": 1,                               //排序
                    "onlyIdentification|1": [0, 1],                   //是否唯一
                    "onlyIdentificationValue": ['是', '否']      //是否唯一属性名
                }
            ]
        }
    })
    return systemPropsList;
}
export const createPhysicModel = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
export const savephysicModelProps = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
export const startPhysicModel = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
export const deletePhysicModel = {
    'code': 200,
    'message': 'ok',
    'data': 124
}
// export const deleteModelVersion = {
//     'code': 200,
//     'message': 'ok',
//     'data': 124
// }
